home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / SLAX 6.0.8 / slax-6.0.8.iso / slax / base / 006-devel.lzm / usr / share / aclocal / lib-prefix.m4 < prev    next >
Encoding:
M4 Source File  |  2008-03-13  |  6.5 KB  |  186 lines

  1. # lib-prefix.m4 serial 5 (gettext-0.15)
  2. dnl Copyright (C) 2001-2005 Free Software Foundation, Inc.
  3. dnl This file is free software; the Free Software Foundation
  4. dnl gives unlimited permission to copy and/or distribute it,
  5. dnl with or without modifications, as long as this notice is preserved.
  6.  
  7. dnl From Bruno Haible.
  8.  
  9. dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and
  10. dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't
  11. dnl require excessive bracketing.
  12. ifdef([AC_HELP_STRING],
  13. [AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])],
  14. [AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])])
  15.  
  16. dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed
  17. dnl to access previously installed libraries. The basic assumption is that
  18. dnl a user will want packages to use other packages he previously installed
  19. dnl with the same --prefix option.
  20. dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate
  21. dnl libraries, but is otherwise very convenient.
  22. AC_DEFUN([AC_LIB_PREFIX],
  23. [
  24.   AC_BEFORE([$0], [AC_LIB_LINKFLAGS])
  25.   AC_REQUIRE([AC_PROG_CC])
  26.   AC_REQUIRE([AC_CANONICAL_HOST])
  27.   AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
  28.   AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
  29.   dnl By default, look in $includedir and $libdir.
  30.   use_additional=yes
  31.   AC_LIB_WITH_FINAL_PREFIX([
  32.     eval additional_includedir=\"$includedir\"
  33.     eval additional_libdir=\"$libdir\"
  34.   ])
  35.   AC_LIB_ARG_WITH([lib-prefix],
  36. [  --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib
  37.   --without-lib-prefix    don't search for libraries in includedir and libdir],
  38. [
  39.     if test "X$withval" = "Xno"; then
  40.       use_additional=no
  41.     else
  42.       if test "X$withval" = "X"; then
  43.         AC_LIB_WITH_FINAL_PREFIX([
  44.           eval additional_includedir=\"$includedir\"
  45.           eval additional_libdir=\"$libdir\"
  46.         ])
  47.       else
  48.         additional_includedir="$withval/include"
  49.         additional_libdir="$withval/$acl_libdirstem"
  50.       fi
  51.     fi
  52. ])
  53.   if test $use_additional = yes; then
  54.     dnl Potentially add $additional_includedir to $CPPFLAGS.
  55.     dnl But don't add it
  56.     dnl   1. if it's the standard /usr/include,
  57.     dnl   2. if it's already present in $CPPFLAGS,
  58.     dnl   3. if it's /usr/local/include and we are using GCC on Linux,
  59.     dnl   4. if it doesn't exist as a directory.
  60.     if test "X$additional_includedir" != "X/usr/include"; then
  61.       haveit=
  62.       for x in $CPPFLAGS; do
  63.         AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
  64.         if test "X$x" = "X-I$additional_includedir"; then
  65.           haveit=yes
  66.           break
  67.         fi
  68.       done
  69.       if test -z "$haveit"; then
  70.         if test "X$additional_includedir" = "X/usr/local/include"; then
  71.           if test -n "$GCC"; then
  72.             case $host_os in
  73.               linux* | gnu* | k*bsd*-gnu) haveit=yes;;
  74.             esac
  75.           fi
  76.         fi
  77.         if test -z "$haveit"; then
  78.           if test -d "$additional_includedir"; then
  79.             dnl Really add $additional_includedir to $CPPFLAGS.
  80.             CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir"
  81.           fi
  82.         fi
  83.       fi
  84.     fi
  85.     dnl Potentially add $additional_libdir to $LDFLAGS.
  86.     dnl But don't add it
  87.     dnl   1. if it's the standard /usr/lib,
  88.     dnl   2. if it's already present in $LDFLAGS,
  89.     dnl   3. if it's /usr/local/lib and we are using GCC on Linux,
  90.     dnl   4. if it doesn't exist as a directory.
  91.     if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then
  92.       haveit=
  93.       for x in $LDFLAGS; do
  94.         AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
  95.         if test "X$x" = "X-L$additional_libdir"; then
  96.           haveit=yes
  97.           break
  98.         fi
  99.       done
  100.       if test -z "$haveit"; then
  101.         if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then
  102.           if test -n "$GCC"; then
  103.             case $host_os in
  104.               linux*) haveit=yes;;
  105.             esac
  106.           fi
  107.         fi
  108.         if test -z "$haveit"; then
  109.           if test -d "$additional_libdir"; then
  110.             dnl Really add $additional_libdir to $LDFLAGS.
  111.             LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir"
  112.           fi
  113.         fi
  114.       fi
  115.     fi
  116.   fi
  117. ])
  118.  
  119. dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix,
  120. dnl acl_final_exec_prefix, containing the values to which $prefix and
  121. dnl $exec_prefix will expand at the end of the configure script.
  122. AC_DEFUN([AC_LIB_PREPARE_PREFIX],
  123. [
  124.   dnl Unfortunately, prefix and exec_prefix get only finally determined
  125.   dnl at the end of configure.
  126.   if test "X$prefix" = "XNONE"; then
  127.     acl_final_prefix="$ac_default_prefix"
  128.   else
  129.     acl_final_prefix="$prefix"
  130.   fi
  131.   if test "X$exec_prefix" = "XNONE"; then
  132.     acl_final_exec_prefix='${prefix}'
  133.   else
  134.     acl_final_exec_prefix="$exec_prefix"
  135.   fi
  136.   acl_save_prefix="$prefix"
  137.   prefix="$acl_final_prefix"
  138.   eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
  139.   prefix="$acl_save_prefix"
  140. ])
  141.  
  142. dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the
  143. dnl variables prefix and exec_prefix bound to the values they will have
  144. dnl at the end of the configure script.
  145. AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX],
  146. [
  147.   acl_save_prefix="$prefix"
  148.   prefix="$acl_final_prefix"
  149.   acl_save_exec_prefix="$exec_prefix"
  150.   exec_prefix="$acl_final_exec_prefix"
  151.   $1
  152.   exec_prefix="$acl_save_exec_prefix"
  153.   prefix="$acl_save_prefix"
  154. ])
  155.  
  156. dnl AC_LIB_PREPARE_MULTILIB creates a variable acl_libdirstem, containing
  157. dnl the basename of the libdir, either "lib" or "lib64".
  158. AC_DEFUN([AC_LIB_PREPARE_MULTILIB],
  159. [
  160.   dnl There is no formal standard regarding lib and lib64. The current
  161.   dnl practice is that on a system supporting 32-bit and 64-bit instruction
  162.   dnl sets or ABIs, 64-bit libraries go under $prefix/lib64 and 32-bit
  163.   dnl libraries go under $prefix/lib. We determine the compiler's default
  164.   dnl mode by looking at the compiler's library search path. If at least
  165.   dnl of its elements ends in /lib64 or points to a directory whose absolute
  166.   dnl pathname ends in /lib64, we assume a 64-bit ABI. Otherwise we use the
  167.   dnl default, namely "lib".
  168.   acl_libdirstem=lib
  169.   searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'`
  170.   if test -n "$searchpath"; then
  171.     acl_save_IFS="${IFS=     }"; IFS=":"
  172.     for searchdir in $searchpath; do
  173.       if test -d "$searchdir"; then
  174.         case "$searchdir" in
  175.           */lib64/ | */lib64 ) acl_libdirstem=lib64 ;;
  176.           *) searchdir=`cd "$searchdir" && pwd`
  177.              case "$searchdir" in
  178.                */lib64 ) acl_libdirstem=lib64 ;;
  179.              esac ;;
  180.         esac
  181.       fi
  182.     done
  183.     IFS="$acl_save_IFS"
  184.   fi
  185. ])
  186.